iT邦幫忙

2025 iThome 鐵人賽

DAY 17
1
AI & Data

動不動就要 ETL? 以Trino為例-淺談從資料倉儲到湖倉系列 第 17

Day 17 - 冰山不止一角,Iceberg 與 S3 (一)

  • 分享至 

  • xImage
  •  

17

前言

《部署與 CI/CD,Trino 在雲端》系列中,我們說明了 Trino 的雲端部署方式、測試與正式環境的切分策略,並介紹了部署過程中的 CI/CD 流程及 Trino 的版本管理機制,完整呈現了 Trino Cluster 從地端到雲端的設定流程。

接下來《冰山不止一角,Iceberg 與 S3》將聚焦於 Trino 最常搭配的 Catalog 之一 :Iceberg on S3。

我們將從 Iceberg 的基本概念談起,延伸至其與 S3 的關係,以及為何 Iceberg 是建構 Data Lakehouse 架構的理想選擇。

透過 Iceberg on S3 的實例與應用說明,使讀者能更具體理解資料湖倉的核心精神與實作方式。

初探 Iceberg

Iceberg logo

Iceberg is a high-performance format for huge analytic tables. Iceberg brings the reliability and simplicity of SQL tables to big data, while making it possible for engines like Spark, Trino, Flink, Presto, Hive and Impala to safely work with the same tables, at the same time.

根據官方文檔定義,Iceberg 是種專門為「大數據分析」設計的表格格式,提供像 AWS S3、Google Cloud Storage、HDFS 等大數據儲存系統一個資料的 「Metadata 管理層」,使大數據分析資料表能夠:

  • 使用標準 SQL 達成好查詢、好管理的特性
  • 相容多個處理引擎(如:Trino、Spark、Flink …)
  • 使多個處理引擎安全的「並行讀寫」資料

Iceberg 之於 S3

Iceberg 僅透過表格格式的設計,便使本來難以查詢的大數據儲存系統變得可愛,但這些好處概念太過抽象,故筆者將就專案上使用之 Iceberg on S3 的資料階層、中繼資料及其設計的用意做詳細說明。

Iceberg on S3 資料階層

上圖可以看到此為 Iceberg on S3 的典型資料階層,分成:

  1. data/:儲存實體資料檔案(如 Parquet/Avro/ORC) 的目錄。 特性為 *immutable、append-only,並支援分區 (partition)。
  2. metadata/:儲存 Iceberg 表的 metadata 與版本控管資訊,是整個表格格式的核心元件。
  3. manifest: metadata/ 下的 Avro 檔,用於索引實體資料檔案,記錄資料的 metadata 如分區 (partition)、資料筆數 及 欄位統計值 等資訊。
  4. snapshot: metadata/下用於記錄某一時點 Iceberg 表狀態的檔案。

*immutable(不變性):指資料檔案一經產生即不可變更,任何資料變動會透過新增新檔案。

明日預告

系列文明日《冰山不止一角,Iceberg 與 S3 (二)》,我們將深入探討 Iceberg on S3 中兩個核心角色 — manifestsnapshot

它們就像「目錄」與「時光機」,分別負責掌管檔案的組織結構,以及資料在不同時間點的全貌。透過這篇,你會理解為什麼 Iceberg 能在龐大的 S3 世界裡,依然快速又精準地找到想要的資料。

Know me more

My Linkedin: https://www.linkedin.com/in/benny0624/
My Medium: https://hndsmhsu.medium.com/


上一篇
Day 16 - 部署與 CICD,Trino 在雲端 (五)
下一篇
Day 18 - 冰山不止一角,Iceberg 與 S3 (二)
系列文
動不動就要 ETL? 以Trino為例-淺談從資料倉儲到湖倉28
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言